System and Method for Selecting and Displaying Webpages

ABSTRACT

A server having one or more processors and memory associates one or more link categories with a first user and receives a request from the browser on the client device to display a new webpage in the browser. In response to the request, the server accesses a list of one or more webpages associated with the first user, where the list is generated based on the one or more link categories associated with the first user, and selects a randomly chosen webpage from a set of webpages including the list of one or more webpages. When the randomly chosen webpage is a webpage associated with the respective link category generated by the second user, the server facilitates display, on the client device, of the randomly chosen webpage from the respective link category generated by the second user.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/270,158, filed Oct. 10, 2011, entitled “System and Method forSelecting and Displaying Webpages” which is a continuation of U.S.application Ser. No. 11/788,457, filed Apr. 19, 2007, entitled “Systemand Method for Selecting and Displaying Webpages,” now U.S. Pat. No.8,065,391 which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

The disclosed embodiments relate generally to the display of webpages,and in particular, to a system and method for dynamically selecting anddisplaying webpages upon a user-initiated action and in accordance withuser preferences and interests.

BACKGROUND

These days, there is an abundance of information available on the WorldWide Web (hereinafter “Web”). However, if a user does not know about awebsite or that certain information may be available on the Web, theuser may not be able to access that website or be presented withinformation that they may be interested in. The terms website andwebpage are used interchangeably throughout this document.

Additionally, since the advent of the Web, web browsers (hereinafter“browser”) such as NETSCAPE or INTERNET EXPLORER have presented userswith a default page that loads when the browser is first launched. Mostbrowsers, however, allow users to change their default homepage. Ifusers change their homepage at all, they typically set their homepageeither to a search engine, such as google.com, or to a content portal,such as yahoo.com or msn.com. Search engine homepages, however, oftenhave static content, i.e. the user is presented with the same homepageeach time the browser is launched, while content portals provide overlygeneralized content that is selected by the content provider.Accordingly, being presented with the same homepage each time that theuser launches their browser does not expose the user to a variety ofwebsites that they may otherwise be interested in viewing.

In recent years, services have emerged that allow users to personalizetheir homepage. These services, such as MY YAHOO and NETVIBES, aggregatecontent from a wide variety of sources and present this content in amodular fashion within a personalized homepage. While these personalizedhomepages present dynamic content, they do not present dynamic userexperiences, as the content may change but the format and website remainthe same. For example, while users can view the latest news feeds,blogs, weather, and other items, but does not experience new websites orcontent as its publisher intended.

Furthermore, even the earliest browsers had the ability to store auser's favorite links, called favorites or bookmarks. A major expansionon this has been the advent of bookmarking websites such as DEL.ICIO.USand FURL. These services began as ways for users to store theirbookmarks with an online service so that those bookmarks could beaccessed from any computer. This model quickly involved into what hasbecome known as social bookmarking, which allows users to easily sharebookmarks with one another. Typically a user can browse another user'sbookmarks either by invitation or by public access, and if the userlikes the description of a link, the user can select that link to view awebpage associated with the link. Similarly, users can access their ownbookmarks stored on the online service. However, there are manysituations where it would be desirable to have a simplified andstreamlined process for accessing either one's own bookmarks or theshared bookmarks of others. For example, if a user would like to accessa random link within her company's collection of “competitor companies”bookmarks, there currently isn't an easy way to do so. Alternatively, auser might want to simply select an icon or button to access the nextsequential web page within a set of bookmarks.

As such, it would be highly desirable to address the above drawbackswhile providing a more dynamic and personalized experience for Internetusers.

SUMMARY

In some embodiments, the present system allows users to set their webbrowser to display a different webpage each time the user launches theirbrowser. Other embodiments allow users to set their browser to display adifferent webpage upon some other user-initiated action, such asselecting a toolbar button or desktop icon. Unlike customized orpersonalized webpages or homepages, described above, the system displaysa different website or webpage at each user-initiated action, ratherthan merely changing the content within the same webpage. The displayedwebsite is automatically chosen and displayed (i.e., without humaninteraction) based on user-selected preferences. These preferences maybe based on how often the user wants to see a currently definedhomepage, websites associated with the user's interests, the user'sbookmarks, bookmarks of other individuals or groups, or the like. Theuser may establish a profile and input their preferences through astandard web interface, e.g., a website viewed in a standard browser.

In some embodiments, the present system allows a user to set how oftenthey want to see their currently defined homepage each time they launchtheir web browser, where their currently defined homepage is the defaultwebsite that prior to defining the user's preferences appeared each timethat the user launched their browser. In use, this system displays theuser's homepage as often as the user's preferences dictate while alsodisplaying other websites in accordance with the remainder of the user'spreferences. Based on the user's preferences, these other webpages maybe selected randomly or sequentially from the user's bookmarks,categories of shared bookmarks, categories of interests, websites orwebpages that are highly rated web communities (e.g., digg.com), etc.

In accordance with some embodiments, once the user sets their browser'shomepage to point to the dynamic webpage server of the presentinvention, the server selects one or more webpages based on theuser-selected preferences stored at the dynamic webpage server, and theuser's browser is then re-directed to the chosen website eachuser-initiated action, e.g., each time that the user opens a new browserwindow, or selects a toolbar button or desktop icon. In browsers thatsupports multiple tabs (i.e. INTERNET EXPLORER 7.0 and MOZILLA FIREFOX),the present system may dynamically select which pages are displayedacross multiple tabs.

Another embodiment of the invention is directed at users who regularlyvisit the same series of websites each day. With each user-initiatedaction, the displayed website is advanced to the next webpage in theseries of websites that the user views each day. For example, a personcould select a toolbar button to open and display a site featuring stockprices for stocks they hold; then, the user could select the sametoolbar button to advance to a website about their favorite sports team;etc. The system may also dynamically learn and simulate a user's patternof behavior. For example, the series of websites that the user viewseach day can be automatically determined by the system and stored in theusers profile for later use, as described above.

In an alternative embodiment, the system may automatically display auser's bookmarks, if any, according to the user's preferences andaccording to certain predefined criteria. For example, the user mayperform some user-initiated action by selecting a toolbar icon ordesktop icon, and the system may display one of the webpages associatedwith on of the bookmarks of the user. Then, the system may automaticallydisplay another webpage associated with another bookmark according to apredefined criteria. In some embodiments, the predefined criteria may bea certain amount of time. In some other embodiments, the user may selectthe order in which to display the webpages associated with his/herbookmarks.

In accordance with other embodiments, the system can take into accountthe current time/date, e.g., time, day, date, year, etc., in determiningwhat pages to display to the user. For example, a user can set theirwebpage preferences to display websites about competitors and partnersduring the work day, but have sports or personal interests appear duringlunchtime, and humorous websites displayed in the evening. Similarly,the system may display webpages related to jewelry, consumerelectronics, or hardware around the date of certain anniversaries, aspouse's birthday, or the holiday season.

No matter which embodiment, the system functions by enabling a user toset link categories according to their preferences and interests, wherea link category is a list of one or more links to webpages or websites,e.g. URLs (Uniform Resource Locators). These groups of links may bespecific to a particular user or grouped together, such as into a linkcategory that includes links to websites associated with a particularsubject matter or topic, e.g., technology, pets, world news, etc. Linkscan also be shared between users.

In use, the user first creates an account within the dynamic webpagesystem and provides certain basic user information. Such basic userinformation may include a username, a password, and an email address.This information is unique for each user and is stored in a user profileunique to that user. The user may also input preferences that dictatewhich pages will be included in the group of webpages from which a “new”homepage is selected with each user-initiated action, such as each timethe user opens their browser.

These preferences may include the current homepage associated with theuser's web browser. Normally, this homepage was displayed when the userlaunched his/her browser. Alternatively, an application on the user'scomputing device, such as a JAVA plugin, may automatically determine theuser's homepage without the user having to provide it. The system mayalso allow the user to select how often they would like the currenthomepage to be displayed each user-initiated action, e.g., each time thebrowser is launched. For example, the user selects the current homepageto display every tenth time a browser instance is opened.

Furthermore, the user preferences may also include user interests. Forexample, some topics may include popular videos, news items, humor,music, physics, astronomy, dogs, cats, photography, literature, poetry,podcasts, health, gaming, cooking, or the like. The system may thenselect from among websites associated with the user-selected interests.Additionally, the user may indicate, not only their interests, but alsohow often they want a website associated with their interests to bedisplayed. Additionally, user preferences may also include the bookmarksassociated with the user's browser. The system also allows users toshare bookmarks with each other.

In accordance with some embodiments of the present invention, acomputer-implemented method of dynamically selecting and presenting awebpage includes: receiving a request, at a server, from a client deviceto display a webpage; determining, at the server, a homepage defined bya user of the client device; accessing, at the server, a list of one ormore webpages associated with the user; selecting a chosen webpage fromthe homepage and the list of one or more webpages; and facilitating thedisplay of the chosen webpage on the client device.

In accordance with some embodiments of the present invention, acomputer-implemented method of dynamically presenting a webpageincludes: receiving a request, at a server, from a client device todisplay a webpage; determining, at the server, a homepage defined by auser of the client device; accessing a list of one or more bookmarksassociated with the user; selecting a chosen webpage from a combinationof the homepage and the list of one or more bookmarks; and facilitatingthe display of the chosen webpage on the client device.

In accordance with some embodiments of the present invention, a systemfor dynamically selecting and presenting a webpage includes memory, oneor more processors, and one or more programs stored in memory andconfigured for execution by the one or more processors. The one or moreprograms include: instructions for receiving a request, at a server,from a client device to display a webpage; instructions for determining,at the server, a homepage defined by a user of the client device;instructions for accessing, at the server, a list of one or morewebpages associated with the user; instructions for selecting a chosenwebpage from the homepage and the list of one or more webpages; andinstructions for facilitating the display of the chosen webpage on theclient device.

In accordance with some embodiments, computer readable storage mediumfor use in conjunction with a computer system having a processorincludes one or more programs executable by the processor. The one ormore programs include: instructions for receiving a request, at aserver, from a client device to display a webpage; instructions fordetermining, at the server, a homepage defined by a user of the clientdevice; instructions for accessing, at the server, a list of one or morewebpages associated with the user; instructions for selecting a chosenwebpage from the homepage and the list of one or more webpages; andinstructions for facilitating the display of the chosen webpage on theclient device.

In accordance with some embodiments, a system for dynamically selectingand presenting a webpage includes memory, one or more processors, andone or more programs stored in memory and configured for execution bythe one or more processors. The one or more programs include:instructions for receiving a request, at a server, from a client deviceto display a webpage; instructions for determining, at the server, ahomepage defined by a user of the client device; instructions foraccessing, at the server, a list of one or more webpages associated withthe user; instructions for selecting a chosen webpage from the homepageand the list of one or more webpages; and instructions for facilitatingthe display of the chosen webpage on the client device.

In accordance with some embodiments, a computer readable storage mediumfor use in conjunction with a computer system having a processorincludes one or more programs executable by the processor. The one ormore programs include: instructions for receiving a request, at aserver, from a client device to display a webpage; instructions fordetermining, at the server, a homepage defined by a user of the clientdevice; instructions for accessing, at the server, a list of one or morewebpages associated with the user; instructions for selecting a chosenwebpage from the homepage and the list of one or more webpages; andinstructions for facilitating the display of the chosen webpage on theclient device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for dynamically selecting andpresenting a webpage in accordance with some embodiments of the presentinvention;

FIG. 2 is a block diagram of an exemplary dynamic webpage server inaccordance with some embodiments of the present invention;

FIG. 3 is a block diagram of an exemplary client computing device inaccordance with some embodiments of the present invention;

FIG. 4A-4D are flowcharts of a process for setting up link categoriesand user preferences in accordance with some embodiments;

FIG. 5 is a flowchart of a process for dynamically selecting andpresenting a webpage in accordance with some embodiments;

FIG. 6 is a flowchart of a process for dynamically selecting andpresenting a webpage in accordance with other embodiments;

FIGS. 7A-7G illustrate exemplary code of the present system inaccordance with some embodiments; and

FIGS. 8A-8T are exemplary screenshots of the present system inaccordance with some embodiments.

Like reference numerals refer to corresponding parts throughout thedrawings.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a block diagram of a dynamic webpage system 100 forautomatically selecting and displaying a webpage based on userpreferences in accordance with some embodiments of the presentinvention. One or more client computing devices 102 (hereinafter“clients”), a dynamic webpage server 106, and one or more web servers110 are connected to one another via a communication network 104. Theclient 102 may be any suitable computing device, such as a desktop orlaptop computer, an internet kiosk, a personal digital assistant, a cellphone, or the like.

In some embodiments, the network 104 is the Internet, but may also be alocal area network (LAN), a metropolitan area network, another wide areanetwork (WAN), such as an intranet, an extranet, or the Internet, or anycombination of such networks. The communication network 104 providescommunication capability between the clients 102, the dynamic webpageservers 106 and the web servers 106. In some embodiments, thecommunication network 104 uses HyperText Transport Protocol (HTTP) totransport information using the Transmission Control Protocol/InternetProtocol (TCP/IP). The HTTP permits client computers to access variousresources available via the communication network 104. The variousembodiments of the invention, however, are not limited to the use of anyparticular protocol. The term “resource” as used throughout thisspecification refers to any document, object, information item, set ofinformation, or service that is accessible via a Uniform ResourceLocator (URL) and can be, for example, a web page, a text or wordprocessing document, an email message, a transcribed voice message, adatabase, an image, or a computational object.

FIG. 2 is a block diagram of an exemplary dynamic webpage server 106 ofthe dynamic paging system 100 of FIG. 1. The dynamic paging systemtranslates a user-initiated action, such as a mouse click or the openingof a browser, into the selection and display of a webpage on a clientcomputer 102 (FIG. 1), where the selection is based on a user'spreferences, including the user's preferred link categories. Asdescribed above, a link category is list of links, such as a category orgrouping of links to websites or webpages. Links can be grouped bycombining similar user-defined tags into categories or can be groupedthrough other methods of grouping common links.

The dynamic webpage server 106 typically includes one or more processingunits (CPUs) 202, one or more network or other communication interfaces204, memory 206, a power source 208, a display 212, a mouse and/orkeyboard 214, and one or more communication buses 210 forinterconnecting these components. The communication buses 210 mayinclude circuitry (sometimes called a chipset) that interconnects andcontrols communications between system components.

The memory 206 may include high speed random access memory, such asDRAM, SRAM, DDR RAM or other random access solid state storage devices;and may include non-volatile memory, such as one or more magnetic diskstorage devices, optical disk storage devices, flash memory devices, orother non-volatile solid state storage devices. The memory may alsoinclude one or more hard disk drives located locally or remotely fromthe CPU(s) 202. In some embodiments, the memory 206 stores the followingprograms, modules, data structures, or a subset thereof:

-   -   an operating system 216 that includes procedures for handling        various basic system services and for performing hardware        dependant tasks, e.g. LINUX or WINDOWS;    -   a network communication module 218 that is used for connecting        the server 106 to other computers via the one or more        communication interfaces 204 and one or more communication        networks 104 (FIG. 1);    -   an editing module 220, which provides the interface through        which users may define their preferences including link        categories to which they subscribe, the specific links within        the link categories that they own, and the relative importance        of various links and link categories. The editing module 220 may        also be used to access invitations and set permissions;    -   an invitation module 222 that manages the invitations that users        send to one another through the dynamic webpage server 106.;    -   a link categorization module 224 that maintains and manages        links, any link categories associated with those links, and        users associated with the link categories;    -   a permissions module 226 that manages permissions both across        the application as well as within each link category. For        example, a user might set up a link category which the user        invites colleagues to join, but may set permissions so that the        invited users are not able to invite anyone else to join the        link category. FIG. 8M exemplifies a web interface to a        permissions module;    -   a history module 228 that stores access information about which        links were visited by which users, when, and for how long, and        also records any rating information that a user might have added        for a particular link or group of links; and    -   user profiles 230 that contain user specific data, such as        unique user identifiers, user preferences, and other user        related information.

Invitations within the invitations module 222 are associated withspecific categories or groups of categories. Invitations are also tiedto the permissions module 226 and the user profiles 230, describedbelow, which allows category administrators to limit what invitees cando with the link category.

In some embodiments, the user profiles 230 not only store identifierinformation and user preferences for each user, but also storesinvitation information, permissions, history, and other informationunique to each user.

FIG. 3 is a block diagram of an exemplary client computing device 102 inaccordance with some embodiments of the present invention. The client102 typically includes one or more processing units (CPUs) 302, one ormore network or other communications interfaces 304, memory 306, one ormore power sources 308, a display device 312, and a keyboard and/ormouse 314, and one or more communication buses 310 for interconnectingthese components. The communication buses 310 may include circuitry(sometimes called a chipset) that interconnects and controlscommunications between system components. The memory 306 may includehigh-speed random access memory, such as DRAM, SRAM, DDR RAM or otherrandom access solid state memory devices; and may include non-volatilememory, such as one or more magnetic disk storage devices, optical diskstorage devices, flash memory devices, or other non-volatile solid statestorage devices. The memory 306 may also optionally include one or morehard disk drives that are local or remotely located from the CPU(s) 302.In some embodiments, the memory 306 stores the following programs,modules and data structures, or a subset thereof:

-   -   an operating system 316 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module 318 that is used for connecting        the client 102 to other computing devices via the one or more        communication network interfaces 304 and one or more        communication networks 104 (FIG. 1);    -   a web browser application 320, such as INTERNET EXPLORER or        FIREFOX;    -   one or more webpages 322 that may be displayed by the web        browser application 320; and    -   an access page 324.

The web browser application 320 permits a user to browse and viewwebpages 322 or other documents or information, and/or interact with thedynamic webpage server 106 (FIG. 1) and other webservers 110 (FIG. 1) toperform one or more tasks via the communication network 104 (FIG. 1).For example, the web browser application 320 may be FIREFOX, INTERNETEXPLORER, OPERA, or SAFARI. In some embodiments, the web browserapplication 320 also includes settings 328, such as user preferences andcurrent homepage, and cookies, such as a reload cookie 333. Cookies aregenerated by the dynamic webpage server 106 and stored locally on theclient 102.

The access page 324 is served by the dynamic webpage server 106 (FIG. 1)in response to an access link request. Note that, once served to theclient-side browser 320, the access page 324 can be cached locally andmay not need to access the server for particular access link requests.In some embodiments, the access page may contain selection module 330code for selecting a link from a list of links and a list of links 332.The selection module 330 and list of links 332 are generated by thedynamic webpage server 106 and stored locally on the client 102. Inthese embodiments, the selection module 330 selects a link from the listof links 332 to display to the user. In some embodiments where websitesare displayed based on the time of the day, day of the week, or day ofthe year, the selection module 330 first assesses what time it is andwhether there are links that should be shown for this particular time(or day). In alternate embodiments, the selection module 330 assesseswhether it should consider the homepage and it reviews the user's otherpreferences. Exemplary code for the selection module is illustrated inFIGS. 7A-7G.

In an alternative embodiment, the client 102 includes dynamic webpageprocedures 326 that perform the functions otherwise performed by thedynamic webpage server 106 (FIG. 1). In this embodiment, the dynamicwebpage procedures 326 may be incorporated into programs such as browsertoolbars, browser plug-ins, or other programs that use the operatingsystem 316.

FIG. 4A is a flowchart of a process 400 for setting up link categoriesand user preferences in accordance with some embodiments. In someembodiments, the process begins when a user selects an invitation linkin an email or clicks on a link on a website (402). An example of areceived email invitation is shown in FIG. 8A. In some otherembodiments, the user begins the process either by visiting the dynamicpaging service directly or selecting some other non-invitation link tovisit the dynamic paging service. In some embodiments, the user mayselect a link that states “click here to join” 802 (FIG. 8A) to bedirected to an initial set-up webpage (as shown in FIG. 8B).

Once a user has selected the invitation link at step 402, the invitationmodule 222 retrieves the invitation information and permissionsinformation associated with that particular invitation from either theinvitation module (222—FIG. 2) or the user profiles (230—FIG. 2) at step404. In other words, if the user clicked on an invitation link, then thedynamic paging service will look up the invitation specified in the linkand retrieve any associated link categories. The server will alsoretrieve the permissions from the permissions module (226—FIG. 2) thatthe person who transmitted the invitation (who could be the owner of thelink category) intended for recipients of the specified invitation. Theserver then generates a webpage to solicit preferences from the user, atstep 406, and transmits that webpage to the client. An example of aninitial set-up webpage is shown in FIG. 8B. The set-up webpage isintended to solicit any additional preferences, which were not containedin the invitation, from the user.

In some embodiments, the user may enter the link (e.g., URL) associatedwith their current homepage in inquiry field 804 (FIG. 8B) at step 408.Alternatively, for browsers that support tabbed browsing, multiplehomepages may be selected. As shown in FIG. 8B, the user provides theirprimary homepage in field 804 and controls how often the currenthomepage will be displayed using the slider shown at 806.

In some embodiments, the user may select links for a primary homepagesubstitute category (i.e., FIG. 8C) at step 410. The user may alsochoose to create a category of links for his or her primary homepage.Link categories that directly substitute for a user's homepage may betreated differently by the dynamic paging service in that userstypically may want to specify how often pages in a homepage linkcategory appear. The user may input their own links for a category oflinks at step 412. For example, the user may enter links into the field808 shown in FIG. 8B.

In some embodiments, the user may also indicate categories of specificinterest at step 414 (i.e. FIG. 8B). For example, the user may entertheir interests in specific topics into field 810 as shown in FIG. 8B.The user's interests are either matched to predefined topics stored inthe link categorization module 224 (FIG. 2) on the dynamic webpageserver 106 (FIG. 2) or the top search results for those interests areharvested from an online search engine. The predefined topics may bemanaged by one or more link category administrators. In an alternativeembodiment, a user can select categories from a list of various topicsor interests. In other embodiments, the user may also search forinterests.

In some embodiments, the user may also create a category from theirlocally stored bookmarks at step 416. For example, the user can indicatehis or her preference to upload locally stored bookmarks from theirbrowser by checking the box labeled, “[i]′d use my bookmarks” 812 asshown in FIG. 8B. As described below, these bookmarks may be manuallyuploaded by the user (see FIG. 8J). In other embodiments, bookmarks maybe uploaded through a client-side program such as a toolbar, plug-in orother program.

In some embodiments, the user may also rely on social bookmarkingservices, to provide the appropriate link categories for the user atstep 418. Examples of some bookmarking sites include services such asDEL.ICIO.US, FURL.NET, REDDIT, YAHOO'S MY WEB, and others which storeusers' favorite links, help users to categorize those links, andoptionally allow users to view the categories and links of other users.Some bookmarking sites such as DIGG.COM specialize in reporting on thepopularity of links among the users of those services. In all cases, auser of the dynamic paging service can create categories associated withspecific bookmarking sites. In the previous examples, the user can joina category of the top links featured on sites such as DIGG.COM orDEL.ICIO.US. An alternative to the example shown would include theability to create a category that specifically ties to a user's ownaccount at such a bookmarking website. For example, if a user has anaccount at DEL.ICIO.US in which the user has stored a category of linksabout string theory, then the user could provide sufficient credentialsto the dynamic paging service to retrieve their stored links atDEL.ICIO.US and place these links into a link category. Further detailsof this process are described below.

In some embodiments, a user may share their categories or managecategories they have previously shared (e.g. FIG. 8N). In otherembodiments, the system may prompt the user to select a category toshare (e.g. FIG. 8O).

In some embodiments, the user may also join any categories to which theyhave been invited at step 420. If the user had initiated thecategorization flow by selecting an invitation link, then the dynamicpaging service would add the link categories associated with thatparticular invitation to the user's link categories. The user, however,may also reject an invitation to automatically add link categories totheir list of link categories. For example, as shown by referencenumeral 815 in FIG. 8B, a user “holliphant” invited the user to join aneCommerce Link Category, which the current user could deselect.Alternatively, the invitation (including associated link categories) maybe automatically accepted when the user selects the invitation link.

In alternate embodiments, in the example shown in FIG. 8Q, a user maycreate invitations for others to participate in a specific category. Arecipient of that invitation may then receive the created invitation tojoin the specific user's category. An example of this is show in FIG.8P. Additionally, in alternate embodiments, a user may also be invitedto join one or more categories belonging to another user (e.g. FIG. 8S).

In some embodiments, the user may also join branded content categoriesat step 422. For example, a user might indicate a desire to join a linkcategory associated with a specific content provider. In the previousexample, a user had the option to join a link category containingpopular FLICKR photographs. Similar link categories can be promoted andmanaged by other content providers such as WIRED.COM or even MYSPACE. Tothe extent that special subcategories of links within those contentprovider's sites are relevant to the user, the user can provide thecredentials necessary for the dynamic paging service to retrieve thoselinks and place these into a link category. An example of this would bea user who provides their MYSPACE username so that the dynamic pagingservice can deliver the profile pages of friends to which the user isconnected. The branded content categories may be managed by a categoryadministrator from the content provider.

Once the preferences have been selected, the user submits thepreferences to the server at step 424. In some embodiments, this may beaccomplished by clicking the “Sign Up” button 816 as shown in FIG. 8B.

The permission module 226 (FIG. 2) of the dynamic webpage server 106(FIG. 1) checks the user profile to ensure that the user can create therequested categories at step 426. A determination is then made todetermine whether the permissions are satisfied at step 428, e.g.,whether the user has the appropriate permissions to create or add thespecified link categories to their profile. If the user does not havethe appropriate permissions to create or add the requested categories(428-No), then an error message is returned to the client at step 430.If the user does have the appropriate permissions to create therequested categories (428-Yes), then the user's inputs (e.g.,preferences) are added to the link categorization module, at step 432,and the requested categories are added to the user's profile. The server106 (FIG. 2) records the user's selections as they are received. Thenext steps process those selections to ensure that the link categoriesare set up as the user intended, as illustrated in FIG. 4B.

An inquiry is performed as to whether the user provided a homepagecategory at step 434. If the user provided a homepage category(434-Yes), then the server generates instructions for the user on how toset the dynamic paging service to act as the user's homepage, at step436; sends the instructions to the user; and the user sets the browser'shomepage to be the dynamic paging service, see, for example, 438 in FIG.8D. Another example of this is shown in FIG. 8E. An alternative versionof this allows client-side software such as a previously downloadedtoolbar or active-X control to automatically set these browserpreferences for the user.

If the user requested locally stored bookmarks to be included (440-Yes),then the server generates instructions on how to upload favorites orbookmarks, at step 442 and exemplified in 8T, and the user exports thefavorites or bookmarks and uploads them to the server at step 444.Alternatively, as described above, these bookmarks may be automaticallylocated and uploaded to the server.

If the user does not add links from locally stored bookmarks (440-No),then the bookmarks link are not added to the link categorization moduleor the user's profile. Also, after the user exports favorites orbookmarks and posts them to the server, at step 444, the bookmarks fileis added to the link categorization module at step 446. Once submitted,the dynamic paging application parses the uploaded file to extract thelinks, link descriptions, and categories for the bookmarks/favorites.These links are then stored in the link categorization module.

If a user creates categories from their social bookmarking accounts(448-Yes), then the server generates a form to solicit username andlogin information for the social bookmarking service at step 450. Theuser may provide his/her username and password to the bookmarking sites,at step 452, which is sent to the server. The server may then access thebookmarking sites on the user's behalf and store the relevant links inthe link categorization module at step 454. In other words, at the timeof dynamic link generation or any time earlier, if the user indicatedthat they would like to use an account with a bookmarking service tocreate link categories, then the dynamic paging service will solicit therelevant information from the user in order to retrieve the links fromthe social bookmarking site. For example, if a user indicated that theywanted to attach their DEL.ICIO.US account to the dynamic pagingservice, then the dynamic paging service would solicit the user'sDEL.ICIO.US username, password, and any tags or categories of particularinterest to the user. The server would then use this information toretrieve relevant links from DEL.ICIO.US on behalf of the user, andstore the links in the link categorization module. In other embodiments,the links are stored in the user's profile. Note that it may not benecessary to solicit a user's password to their bookmarking site if thatsite displays publicly accessible information about the user's links.

If a user indicated that they had interests in predefined categories,then the server will consult with the link categorization module toevaluate whether link categories already exist for those interests atstep 456. If the user indicated specific interests and these do notalready exist in the link categorization module (456-No), then theserver determines the best sources for links in the category of specificinterests, and retrieves links from those sources and stores the resultin the link categorization module at step 458. In some embodiments, theresults are stored in the user's profile. For example, if the userindicates that they have an interest in “parrots” and the linkcategorization module does not have any link categories that relate to“parrots,” then the server will create new link categories related to“parrots” by retrieving parrot-related links from various web databasessuch as GOOGLE, DIGG.COM, DEL.ICIO.US, other public search engines,FLICKR photographs, and/or other sources and/or databases.

If the user indicated specific interest and these already exist in thelink categorization module (456-Yes), and if the user selected brandedcategories and login or other information is required (460-Yes), thenthe server will generate a form to solicit login or other informationfor the branded category, at step 462. The user provides username,login, or other information, at step 464, and the server retrievesinformation from the branded category and stores the result in the linkcategorization module at step 466.

If a user expressed an interest in content or webpages associated with aspecific brand or content provider, then the dynamic paging service willassociate the user with that brand/content provider in the linkcategorization module. An example of this might be where a user decidesto subscribe to the link category maintained by WIRED Magazine. However,additional information may be required from a user to access thesebranded categories of links. For example, if a user decides that theywant to add a link category consisting of their MYSPACE friends, thenthe dynamic paging service will generate a page that solicits the user'sMYSPACE profile name. After receiving this input from the user, theserver will retrieve the links associated with the user's MYSPACEfriends and assign these to a new link category.

If branded categories were selected by the user, but no login or otherinformation was required for those branded categories (460-No), then adetermination is made as to whether the user accepted an invitation tojoin a category at step 468 (FIG. 4C). If the user has accepted aninvitation to join a category (468-Yes), then the server retrievescategory information from the invitation module and stores the user'sresponse in the link categorization module at step 470. In someembodiments, the user's response is stored in the user's profile.

If the user has not accepted an invitation to join a category (468-No),or if the server has completed the storing of the user's invitationresponse, then the permissions module determines whether the user haspermission to edit any links or categories. If so (472-Yes) then theserver generates a form to solicit weightings across categories or editswithin categories at step 474. The user may then select which categoriesor specific links are more or less important than others at step 476.Additionally, step 476 may also allow the user to edit specific links orcategories as permitted. An example of a webpage that solicits theseweightings and edits is in FIG. 8H. Upon submission, the server storesthe user's selections in the link categorization module at step 478. Insome embodiments, these selections are stored in the user's profile.

If any changes to the user's preferences have been made (480-Yes), thenthe server sends a reload cookie to flag changes on the user's client,at step 482, and the user's client accepts the reload cookie at step484. If changes have not been made, the configuration of the links,categories and relative importance of each is completed at step 486.Additionally, if there are no permissions to allow the user to editthese categories (480-No), then the links, categories, and relativeimportance of each is completed at step 486. Note that the use of thereload cookie at step 484 allows the client to keep locally cachedpreferences, which in turn speeds the responsiveness of user requests.When a reload cookie is sent to the client, then the client understandsto update its local cache with new information from the server when theuser next makes a request for a dynamic page. In some embodiments, acaching mechanism is not used and the responsiveness to user's requestsis slower. In these embodiments, when a user makes a dynamic pagingrequest by opening a browser, clicking a toolbar button, or through someother means, the client requests updated preferences directly from theserver and does not rely on a local cache.

Additionally, during the preferences set-up process, a user may alsoconfigure browser and/or desktop icons to access the chosen links. FIG.4D is a flowchart of a process for configuring button access. Theprocess begins when a user initiates a request to configure buttonaccess (490). For example, in some embodiments, a user clicks on aninvitation link or enter the appropriate URL into the browser. Theserver then retrieves categories from the link categorization module andgenerates a page soliciting the categories for one click access (491).An example of such a page is exemplified in FIG. 8S. The user may thenchoose among several options (492). Examples of such options may be: aspecific category or categories of links (Example “Specific Category orCategories”; all categories (Example “All Categories”); a specific user(Example “Specific User”), or a specific user's category (Example“Specific User's Category”).

The server generates an access link that corresponds to one or morespecific categories (Examples “All Categories”, “Specific Category orCategories”, “Specific User's Category”) or one or more users (Example“Specific User”) and displays options for where to use the access link(493). The user may then select one or more uses for the access link andfollow instructions for how to use the access link in the selectedmanner (494). FIGS. 8K and 8L illustrate some of the buttonconfiguration options that would be available to a user. In someembodiments, examples of such uses are applicable to: toolbar button;desktop icon; share via email; and website widget. Button accessconfiguration is then completed (495) and an associated button wouldappear on the user's toolbar or on the user's desktop.

FIG. 5 is a flowchart of a process for dynamically selecting andpresenting a webpage, according to some embodiments. Process 500 beginswhen the server receives a request, at step 504, from a client todisplay a webpage by either the launching of the user's browser or bythe user selecting a toolbar button or desktop icon at step 502. In someembodiments, the request includes a unique identifier of the client oruser. The server authenticates the request sent by the client and checksthe user's profile and other identifying information, including userpreferences, based on the unique identifier. A homepage that the userhad previously used (before using this service) is determined, at step506, and a list of one or more websites for that user is determinedbased on the user's preferences at step 508. In these embodiments, aparticular website is selected from the combination of the list and thehomepage at step 510. Information associated with the chosen website isthen sent from the server to the client device, at step 512. The chosenwebsite (or webpage) is then sent to the client to be displayed at step514. Alternatively, the server sends redirect instructions to theclient, directing the client to retrieve and display the chosen websiteat step 514. The client receives and displays the chosen website at step516.

FIG. 6 is a flowchart of a process for dynamically selecting andpresenting a webpage in accordance with other embodiments. The process600 begins when a user takes an initiating action, at step 602, such asclicking an access link on a website or opening a browser. If the clientdoes not have a locally cached access page 324 (604-No), then the clientrequests the access page from the dynamic webpage server 106, at step606. This request can include a number of request parameters, such asunique identifier for the client or user (this is the UserID in theexample page), an identifier representing the user's preferences fortheir homepage (Example “Homepage Category”), an identifier requesting auser's non-homepage categories (Example “All Categories), a request forspecific link categories (Example “Specific Category or Categories”), arequest for links associated with a specific user (Example “SpecificUser”), or a request for links associated with a specific user'scategory (Example “Specific User's Category). The server then generates,at step at step 608, an access page. This access page contains aselection module 330 (FIG. 3) and a list of links 332 (FIG. 3). The listof links 332 is retrieved from the link categorization module 224 (FIG.2), which decides on a set of appropriate links based on the requestparameters sent by the client. These links are filtered by thepermissions module 226 (FIG. 2), either for a particular user or forpublic access. Examples of types of client requests for an access pageis shown in Table 1.

If the client already had a locally stored cached access page (604-Yes)or once the access page is sent to the client from the server, theclient loads the access page and begins executing the code of theselection module at step 610. If the reload cookie 333 (FIG. 3) is set(612-Yes), then the selection module requests a new access page from theserver at step 624, which is then sent at step 608.

If the reload cookie 333 (FIG. 3) is not set (612-No), then theselection module within the access page chooses, at step 614, a relevantlink from the list of links 332 (FIG. 3) previously sent to the accesspage by the server. If the relevant link is found in the local cache(616-Yes), then the selection module inside the access page storesaccess information about the link in the cookies at step 618, and theselection module re-directs the user's browser to the selected link atstep 620. If the webpage associated with the chosen link has a timelimit associated with it, e.g., expires after 5 minutes, (622-Yes), thenthe selection module selects a new link from the list at step 614 andthe new webpage is retrieved by redirecting the user's browser to fetchthat webpage.

FIGS. 8A-8T are exemplary screenshots of the present system inaccordance with some embodiments. As explained above, FIG. 8A is anexample of a received invitation. FIG. 8B shows an exemplary initialset-up page. FIG. 8C-8T show various screenshots of the webpages thatenable a user to set preferences in accordance to some embodiments.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the invention and its practical applications, to therebyenable others skilled in the art to best utilize the invention andvarious embodiments with various modifications as are suited to theparticular use contemplated.

TABLE 1 TYPES OF CLIENT REQUESTS FOR AN ACCESS PAGE Example referenceSample Request Links included with Selection Module Homepage URL:http://sitesafari.com/homepage Link Categorization Module will retrievethe Category Cookie value: UserID = 1234 preferences for the links andcategories that user (user is identified by the UserID 1234 indicatedthey would like to see as their value in the cookie) homepage. Usuallythis includes all the categories in which the user has expressed aninterest plus any links or categories that the user has specificallyrequested as a substitute for their homepage. The Link CategorizationModule will then generate a list of Links associated with thesepreferences. All URL: Link Categorization Module will retrieve theCategories http://sitesafari.com/homepage/?imbored=1 preferences for thelinks and categories that user Cookie value: UserID = 1234 1234indicated they would like to see, exclusive of their homepagealternatives. Usually this includes all the user's categories and linksof interest, but does not include pages that the user has explicitlyrequested as a substitute for their homepage. The Link CategorizationModule will then generate a list of Links associated with thesepreferences Specific URL: Link Categorization Module will query theCategory or http://sitesafari.com/pg/?grpid=2000,2001,2002 PermissionsModule to ensure that user 1234 has Categories Cookie value: UserID =1234 or permission to view link categories 2000, 2001, and omitted 2002.It will then generate a list of Links associated with permittedcategories. If the UserID is omitted, then the Permission Module willinstead filter for categories that are enabled for public viewing.Specific URL: http://user5678.sitesafari.com Link Categorization Modulewill retrieve the stored User Cookie value: UserID = 1234 or preferencesfor user 5678 and will then query the omitted Permissions Module to seewhich of those user 1234 is allowed to view. It will then generate alist of Links based on what is permitted. If the UserID is omitted, thenthe Permission Module will instead filter for categories that areenabled for public viewing. Specific URL: Link Categorization Modulewill look within user User's http://user5678.sitesafari.com/parrots5678's categories for a category called “parrots”. It Category Cookievalue: UserID = 1234 of will then check against the Permissions Moduleto omitted ensure that user 1234 has permission to view links in thatgroup. Finally, it will generate a list of Links that meet thesecriteria. If the UserID is omitted, then the Permission Module willfilter for categories that are enabled for public viewing.

1. A method of dynamically selecting and presenting a webpage,comprising: at a server having one or more processors and memory storingone or more programs, the one or more processors executing the one ormore programs to perform the operations of: associating one or more linkcategories stored at the server with a first user, wherein each linkcategory is a list, stored at the server, of one or more links towebpages, and the one or more link categories include a respective linkcategory that is generated by a second user different from the firstuser, wherein the second user is not a content provider associated withwebpages in the respective link category; receiving a request from thebrowser on the client device to display a new webpage in the browser;and in response to the request, automatically, without humaninteraction: accessing a list of one or more webpages associated withthe first user, wherein the list is generated based on the one or morelink categories associated with the first user; selecting a randomlychosen webpage from a set of webpages including the list of one or morewebpages; and when the randomly chosen webpage is a webpage associatedwith the respective link category generated by the second user,facilitating the display, on the client device, of the randomly chosenwebpage from the respective link category generated by the second user.2. The method of claim 1, further comprising sending the randomly chosenwebpage to the client device for display.
 3. The method of claim 1,wherein the facilitating comprises sending instructions to the clientdevice to obtain the randomly chosen webpage.
 4. The method of claim 1,wherein the set of one or more webpages includes webpages correspondingto a plurality of the bookmarks of the browser.
 5. The method of claim1, wherein the set of one or more webpages includes webpagescorresponding to a plurality of search results from one or more searchengines.
 6. The method of claim 1, further including: receiving asubsequent request, at the server, from the browser on the client deviceto display a new webpage in the browser; automatically selecting adifferent webpage from the set of webpages; and facilitating the displayof the different webpage in accordance with predefined criteria.
 7. Themethod of claim 5, wherein the predefined criteria includes whichwebsites should be displayed at particular times of the day, day of theweek, or day of the year, and wherein the method further comprises,before the selecting, determining the time or date at the server.
 8. Themethod of claim 1, further comprising automatically displayingsubsequent webpages from the set of webpages in accordance withpredefined criteria.
 9. The method of claim 8, wherein the predefinedcriteria is a predetermined amount of time.
 10. The method of claim 1,wherein the request from the client device to display a new webpage inthe browser is initiated by the first user launching the browser on theclient device.
 11. The method of claim 1, wherein the request from theclient device to display a new webpage in the browser is initiated bythe first user opening a new browser window in the browser.
 12. Themethod of claim 1, wherein the set of one or more webpages includes atleast one webpage hosted on a web server distinct from the server.
 13. Asystem for dynamically selecting and presenting a webpage, comprising:memory; one or more processors; and one or more programs stored inmemory and configured for execution by the one or more processors, theone or more programs comprising instructions for: associating one ormore link categories stored at the server with a first user, whereineach link category is a list, stored at the server, of one or more linksto webpages, and the one or more link categories include a respectivelink category that is generated by a second user different from thefirst user, wherein the second user is not a content provider associatedwith webpages in the respective link category; receiving a request fromthe browser on the client device to display a new webpage in thebrowser; and in response to the request, automatically, without humaninteraction: accessing a list of one or more webpages associated withthe first user, wherein the list is generated based on the one or morelink categories associated with the first user; selecting a randomlychosen webpage from a set of webpages including the list of one or morewebpages; and when the randomly chosen webpage is a webpage associatedwith the respective link category generated by the second user,facilitating the display, on the client device, of the randomly chosenwebpage from the respective link category generated by the second user.14. A non-transitory computer readable storage medium for use inconjunction with a computer system having a processor, the computerreadable storage medium comprising one or more programs executable bythe processor, the one or more programs comprising instructions for:associating one or more link categories stored at the server with afirst user, wherein each link category is a list, stored at the server,of one or more links to webpages, and the one or more link categoriesinclude a respective link category that is generated by a second userdifferent from the first user, wherein the second user is not a contentprovider associated with webpages in the respective link category;receiving a request from the browser on the client device to display anew webpage in the browser; and in response to the request,automatically, without human interaction: accessing a list of one ormore webpages associated with the first user, wherein the list isgenerated based on the one or more link categories associated with thefirst user; selecting a randomly chosen webpage from a set of webpagesincluding the list of one or more webpages; and when the randomly chosenwebpage is a webpage associated with the respective link categorygenerated by the second user, facilitating the display, on the clientdevice, of the randomly chosen webpage from the respective link categorygenerated by the second user.
 15. A method of dynamically selecting andpresenting a webpage, comprising: at a server having one or moreprocessors and memory storing one or more programs, the one or moreprocessors executing the one or more programs to perform the operationsof: associating a link category stored at the server with a first user,wherein the link category is a list of one or more links to webpagesthat is generated by a second user different from the first user, wherethe second user is not a content provider associated with webpages inthe respective link category; receiving a request from the browser onthe client device to display a new webpage in the browser; and inresponse to the request, automatically, without human interaction:selecting a randomly chosen link from the link category; andfacilitating the display, on the client device, of a webpage associatedwith the randomly chosen link.